package com.redepronik.medisys.cithis.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Time;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the citas database table.
 * 
 */
@Entity
@Table(name="citas")
@NamedQuery(name="Cita.findAll", query="SELECT c FROM Cita c")
public class Cita implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="CITAS_CITASID_GENERATOR" )
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CITAS_CITASID_GENERATOR")
	@Column(unique=true, nullable=false)
	private Integer citasid;

	@Temporal(TemporalType.DATE)
	@Column(nullable=false)
	private Date fecha;

	@Column(nullable=false)
	private Time horaentreda;

	@Column(nullable=false)
	private Time horasalida;

	@Column(nullable=false)
	private Boolean realizado;

	//bi-directional many-to-one association to Paciente
	@ManyToOne
	@JoinColumn(name="pacienteid", nullable=false)
	private Paciente paciente;

	//bi-directional many-to-one association to Consulta
	@OneToMany(mappedBy="cita")
	private List<Consulta> consultas;

	public Cita() {
	}

	public Integer getCitasid() {
		return this.citasid;
	}

	public void setCitasid(Integer citasid) {
		this.citasid = citasid;
	}

	public Date getFecha() {
		return this.fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Time getHoraentreda() {
		return this.horaentreda;
	}

	public void setHoraentreda(Time horaentreda) {
		this.horaentreda = horaentreda;
	}

	public Time getHorasalida() {
		return this.horasalida;
	}

	public void setHorasalida(Time horasalida) {
		this.horasalida = horasalida;
	}

	public Boolean getRealizado() {
		return this.realizado;
	}

	public void setRealizado(Boolean realizado) {
		this.realizado = realizado;
	}

	public Paciente getPaciente() {
		return this.paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	public List<Consulta> getConsultas() {
		return this.consultas;
	}

	public void setConsultas(List<Consulta> consultas) {
		this.consultas = consultas;
	}

	public Consulta addConsulta(Consulta consulta) {
		getConsultas().add(consulta);
		consulta.setCita(this);

		return consulta;
	}

	public Consulta removeConsulta(Consulta consulta) {
		getConsultas().remove(consulta);
		consulta.setCita(null);

		return consulta;
	}

}